/*
 * Microsoft JDBC Driver for SQL Server
 * 
 * Copyright(c) Microsoft Corporation All rights reserved.
 * 
 * This program is made available under the terms of the MIT License. See the LICENSE file in the project root for more information.
 */

package com.microsoft.sqlserver.jdbc;

import java.util.ListResourceBundle;

/**
 * A simple resource bundle containing the strings for localizing.
 *
 */
public final class SQLServerResource extends ListResourceBundle {
    static String getResource(String key) {
        return SQLServerResource.getBundle("com.microsoft.sqlserver.jdbc.SQLServerResource").getString(key);
    }

    protected Object[][] getContents() {
        return contents;
    }

    // the keys must be prefixed with R_ to denote they are resource strings and their names should follow the camelCasing
    // convention and be descriptive
    static final Object[][] contents = {
				// LOCALIZE THIS
				{"R_timedOutBeforeRouting", "The timeout expired before connecting to the routing destination."},
				{"R_invalidRoutingInfo", "Unexpected routing information received. Please check your connection properties and SQL Server configuration."},
				{"R_multipleRedirections", "Two or more redirections have occurred. Only one redirection per login attempt is allowed."},
				{"R_dbMirroringWithMultiSubnetFailover", "Connecting to a mirrored SQL Server instance using the multiSubnetFailover connection property is not supported."},
				{"R_dbMirroringWithReadOnlyIntent", "Connecting to a mirrored SQL Server instance using the ApplicationIntent ReadOnly connection property is not supported."},
				{"R_ipAddressLimitWithMultiSubnetFailover", "Connecting with the multiSubnetFailover connection property to a SQL Server instance configured with more than {0} IP addresses is not supported."},
				{"R_connectionTimedOut", "Connection timed out: no further information."},
				{"R_invalidPositionIndex", "The position index {0} is not valid."},  
				{"R_invalidLength", "The length {0} is not valid."},                         
				{"R_unknownSSType", "Invalid SQL Server data type {0}."},                        
				{"R_unknownJDBCType", "Invalid JDBC data type {0}."},                        
				{"R_notSQLServer", "The driver received an unexpected pre-login response. Verify the connection properties and check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. This driver can be used only with SQL Server 2000 or later."},
				{"R_tcpOpenFailed", "{0}. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall."},
				{"R_unsupportedJREVersion", "Java Runtime Environment (JRE) version {0} is not supported by this driver. Use the sqljdbc4.jar class library, which provides support for JDBC 4.0."},
				{"R_unsupportedServerVersion", "SQL Server version {0} is not supported by this driver."},
				{"R_noServerResponse", "SQL Server did not return a response. The connection has been closed."},
				{"R_truncatedServerResponse", "SQL Server returned an incomplete response. The connection has been closed."},
				{"R_queryTimedOut", "The query has timed out."},
				{"R_queryCancelled", "The query was canceled."},
				{"R_errorReadingStream", "An error occurred while reading the value from the stream object. Error: \"{0}\""},
				{"R_streamReadReturnedInvalidValue", "The stream read operation returned an invalid value for the amount of data read."},
				{"R_mismatchedStreamLength", "The stream value is not the specified length. The specified length was {0}, the actual length is {1}."},
				{"R_notSupported", "This operation is not supported."},
				{"R_invalidOutputParameter", "The index {0} of the output parameter is not valid."},
				{"R_outputParameterNotRegisteredForOutput", "The output parameter {0} was not registered for output."},
				{"R_parameterNotDefinedForProcedure", "Parameter {0} was not defined for stored procedure {1}."},
				{"R_connectionIsClosed", "The connection is closed."},
				{"R_invalidBooleanValue", "The property {0} does not contain a valid boolean value. Only true or false can be used."},
				{"R_propertyMaximumExceedsChars", "The {0} property exceeds the maximum number of {1} characters."},
				{"R_invalidPortNumber", "The port number {0} is not valid."},
				{"R_invalidTimeOut", "The timeout {0} is not valid."},
				{"R_invalidLockTimeOut", "The lockTimeOut {0} is not valid."},
				{"R_invalidAuthenticationScheme", "The authenticationScheme {0} is not valid."},
				{"R_invalidPacketSize", "The packetSize {0} is not valid."},
				{"R_packetSizeTooBigForSSL", "SSL encryption cannot be used with a network packet size larger than {0} bytes.  Please check your connection properties and SQL Server configuration."},
				{"R_tcpipConnectionFailed", "The TCP/IP connection to the host {0}, port {1} has failed. Error: \"{2}\"."},  //<loccomment>{PlaceHolder="TCP/IP"}</locomment>
				{"R_invalidTransactionLevel", "The transaction level {0} is not valid."},
				{"R_cantInvokeRollback", "Cannot invoke a rollback operation when the AutoCommit mode is set to \"true\"."},
				{"R_cantSetSavepoint", "Cannot set a savepoint when the AutoCommit mode is set to \"true\"."},
				{"R_sqlServerHoldability", "SQL Server supports holdability at the connection level only. Use the connection.setHoldability() method."},  //<loccomment>{PlaceHolder="connection.setHoldability()"}</locomment>
				{"R_invalidHoldability", "The holdability value {0} is not valid."},
				{"R_invalidColumnArrayLength", "The column array is not valid. Its length must be 1."},
				{"R_valueNotSetForParameter", "The value is not set for the parameter number {0}."},
				{"R_sqlBrowserFailed", "The connection to the host {0}, named instance {1} failed. Error: \"{2}\". Verify the server and instance names and check that no firewall is blocking UDP traffic to port 1434.  For SQL Server 2005 or later, verify that the SQL Server Browser Service is running on the host."},
				{"R_notConfiguredToListentcpip", "The server {0} is not configured to listen with TCP/IP."},
				{"R_cantIdentifyTableMetadata", "Unable to identify the table {0} for the metadata."},
				{"R_metaDataErrorForParameter", "A metadata error for the parameter {0} occurred."},
				{"R_invalidParameterNumber", "The parameter number {0} is not valid."},
				{"R_noMetadata", "There is no metadata."},
				{"R_resultsetClosed", "The result set is closed."},
				{"R_invalidColumnName", "The column name {0} is not valid."},
				{"R_resultsetNotUpdatable", "The result set is not updatable."},
				{"R_indexOutOfRange", "The index {0} is out of range."},
				{"R_savepointNotNamed", "The savepoint is not named."},
				{"R_savepointNamed", "The savepoint {0} is named."},
				{"R_resultsetNoCurrentRow", "The result set has no current row."},
				{"R_mustBeOnInsertRow", "The cursor is not on the insert row."},
				{"R_mustNotBeOnInsertRow", "The requested operation is not valid on the insert row."},
				{"R_cantUpdateDeletedRow", "A deleted row cannot be updated."},
				{"R_noResultset", "The statement did not return a result set."},
				{"R_resultsetGeneratedForUpdate", "A result set was generated for update."},
				{"R_statementIsClosed", "The statement is closed."},
				{"R_invalidRowcount", "The maximum row count {0} for a result set must be non-negative."},
				{"R_invalidQueryTimeOutValue", "The query timeout value {0} is not valid."},
				{"R_invalidFetchDirection", "The fetch direction {0} is not valid."},
				{"R_invalidFetchSize", "The fetch size cannot be negative."},
				{"R_noColumnParameterValue", "No column parameter values were specified to update the row."},
				{"R_statementMustBeExecuted", "The statement must be executed before any results can be obtained."},
				{"R_modeSuppliedNotValid", "The supplied mode is not valid."},
				{"R_errorConnectionString", "The connection string contains a badly formed name or value."},
				{"R_errorProcessingComplexQuery", "An error occurred while processing the complex query."},
				{"R_invalidOffset", "The offset {0} is not valid."},
				{"R_nullConnection", "The connection URL is null."},
				{"R_invalidConnection", "The connection URL is invalid."},
				{"R_cannotTakeArgumentsPreparedOrCallable", "The method {0} cannot take arguments on a PreparedStatement or CallableStatement."},
				{"R_unsupportedConversionFromTo", "The conversion from {0} to {1} is unsupported."}, // Invalid conversion (e.g. MONEY to Timestamp)
				{"R_unsupportedConversionTo", "The conversion to {0} is unsupported."}, // Invalid conversion to an unknown type
				{"R_errorConvertingValue","An error occurred while converting the {0} value to JDBC data type {1}."}, // Data-dependent conversion failure (e.g. "foo" vs. "123", to Integer)
				{"R_streamIsClosed", "The stream is closed."},
				{"R_invalidTDS", "The TDS protocol stream is not valid."},
				{"R_unexpectedToken", " Unexpected token {0}."},
				{"R_selectNotPermittedinBatch", "The SELECT statement is not permitted in a batch."},
				{"R_failedToCreateXAConnection", "Failed to create the XA control connection. Error: \"{0}\""},
				{"R_codePageNotSupported", "Codepage {0} is not supported by the Java environment."},
				{"R_unknownSortId", "SQL Server collation {0} is not supported by this driver."},
				{"R_unknownLCID", "Windows collation {0} is not supported by this driver."},
				{"R_encodingErrorWritingTDS", "An encoding error occurred while writing a string to the TDS buffer. Error: \"{0}\""},
				{"R_processingError", "A processing error \"{0}\" occurred."},
				{"R_requestedOpNotSupportedOnForward", "The requested operation is not supported on forward only result sets."},
				{"R_unsupportedCursor", "The cursor type is not supported."},
				{"R_unsupportedCursorOperation", "The requested operation is not supported with this cursor type."},
				{"R_unsupportedConcurrency", "The concurrency is not supported."},
				{"R_unsupportedCursorAndConcurrency", "The cursor type/concurrency combination is not supported."},
				{"R_stringReadError", "A string read error occurred at offset:{0}."},
				{"R_stringWriteError", "A string write error occurred at offset:{0}."},
				{"R_stringNotInHex", "The string is not in a valid hex format."},
				{"R_unknownType", "The Java type {0} is not a supported type."},
				{"R_physicalConnectionIsClosed", "The physical connection is closed for this pooled connection."},
				{"R_invalidDataSourceReference", "Invalid DataSource reference."},
				{"R_cantGetColumnValueFromDeletedRow", "Cannot get a value from a deleted row."},
				{"R_cantGetUpdatedColumnValue", "Updated columns cannot be accessed until updateRow() or cancelRowUpdates() has been called."},
				{"R_cantUpdateColumn","The column value cannot be updated."},
				{"R_positionedUpdatesNotSupported", "Positioned updates and deletes are not supported."},
				{"R_invalidAutoGeneratedKeys", "The autoGeneratedKeys parameter value {0} is not valid. Only the values Statement.RETURN_GENERATED_KEYS and Statement.NO_GENERATED_KEYS can be used."},
				{"R_notConfiguredForIntegrated", "This driver is not configured for integrated authentication."},
				{"R_failoverPartnerWithoutDB", "databaseName is required when using the failoverPartner connection property."},
				{"R_invalidPartnerConfiguration", "The database {0} on server {1} is not configured for database mirroring."},
				{"R_invaliddisableStatementPooling", "The disableStatementPooling value {0} is not valid."},
				{"R_invalidselectMethod", "The selectMethod {0} is not valid."},
				{"R_invalidpropertyValue", "The data type of connection property {0} is not valid. All the properties for this connection must be of String type."},
				{"R_invalidArgument", "The argument {0} is not valid."},
				{"R_streamWasNotMarkedBefore", "The stream has not been marked."},
				{"R_invalidresponseBuffering", "The responseBuffering connection property {0} is not valid."},
				{"R_invalidapplicationIntent", "The applicationIntent connection property {0} is not valid."},
				{"R_dataAlreadyAccessed", "The data has been accessed and is not available for this column or parameter."},
				{"R_outParamsNotPermittedinBatch", "The OUT and INOUT parameters are not permitted in a batch."},
				{"R_sslRequiredNoServerSupport", "The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. The application requested encryption but the server is not configured to support SSL."},
				{"R_sslRequiredByServer", "SQL Server login requires an encrypted connection that uses Secure Sockets Layer (SSL)."},
				{"R_sslFailed", "The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: \"{0}\"."},
				{"R_certNameFailed", "Failed to validate the server name in a certificate during Secure Sockets Layer (SSL) initialization."},
				{"R_failedToInitializeXA", "Failed to initialize the stored procedure xp_sqljdbc_xa_init. The status is: {0}. Error: \"{1}\""},
				{"R_failedFunctionXA", "The function {0} failed. The status is: {1}. Error: \"{2}\""},
				{"R_noTransactionCookie", "The function {0} failed. No transaction cookie was returned."},
				{"R_failedToEnlist", "Failed to enlist. Error: \"{0}\""},
				{"R_failedToUnEnlist", "Failed to unenlist. Error: \"{0}\""},
				{"R_failedToReadRecoveryXIDs", "Failed to read recovery XA branch transaction IDs (XIDs). Error: \"{0}\""},
				{"R_userPropertyDescription", "The database user."},
				{"R_passwordPropertyDescription", "The database password."},
				{"R_databaseNamePropertyDescription", "The name of the database to connect to."},
				{"R_serverNamePropertyDescription", "The computer running SQL Server."},
				{"R_portNumberPropertyDescription", "The TCP port where an instance of SQL Server is listening."},
				{"R_serverSpnPropertyDescription", "SQL Server SPN."},
				{"R_columnEncryptionSettingPropertyDescription", "The column encryption setting."},
				{"R_serverNameAsACEPropertyDescription", "Translates the serverName from Unicode to ASCII Compatible Encoding (ACE), as defined by the ToASCII operation of RFC 3490."},
				{"R_sendStringParametersAsUnicodePropertyDescription", "Determines if the string parameters are sent to the server as Unicode or the database's character set."},
				{"R_multiSubnetFailoverPropertyDescription", "Indicates that the application is connecting to the Availability Group Listener of an Availability Group or Failover Cluster Instance."},
				{"R_applicationNamePropertyDescription", "The application name for SQL Server profiling and logging tools."},
				{"R_lastUpdateCountPropertyDescription", "Ensures that only the last update count is returned from an SQL statement passed to the server."},
				{"R_disableStatementPoolingPropertyDescription", "Disables the statement pooling feature."},
				{"R_integratedSecurityPropertyDescription", "Indicates whether Windows authentication will be used to connect to SQL Server."},
				{"R_authenticationSchemePropertyDescription", "The authentication scheme to be used for integrated authentication."},
				{"R_lockTimeoutPropertyDescription", "The number of milliseconds to wait before the database reports a lock time-out."},
				{"R_loginTimeoutPropertyDescription", "The number of seconds the driver should wait before timing out a failed connection."},
				{"R_instanceNamePropertyDescription", "The name of the SQL Server instance to connect to."},
				{"R_xopenStatesPropertyDescription", "Determines if the driver returns XOPEN-compliant SQL state codes in exceptions."},
				{"R_selectMethodPropertyDescription", "Enables the application to use server cursors to process forward only, read only result sets."}, 
				{"R_responseBufferingPropertyDescription", "Controls the adaptive buffering behavior to allow the application to process large result sets without requiring server cursors."},
				{"R_applicationIntentPropertyDescription", "Declares the application workload type when connecting to a server. Possible values are ReadOnly and ReadWrite."},   
				{"R_workstationIDPropertyDescription", "The host name of the workstation."},
				{"R_failoverPartnerPropertyDescription", "The name of the failover server used in a database mirroring configuration."},
				{"R_packetSizePropertyDescription", "The network packet size used to communicate with SQL Server."},
				{"R_encryptPropertyDescription", "Determines if Secure Sockets Layer (SSL) encryption should be used between the client and the server."},
				{"R_trustServerCertificatePropertyDescription", "Determines if the driver should validate the SQL Server Secure Sockets Layer (SSL) certificate."},
				{"R_trustStoreTypePropertyDescription", "Type of trust store type like JKS / PKCS12 or any FIPS Provider KeyStore implementation Type."},
				{"R_trustStorePropertyDescription", "The path to the certificate trust store file."},
				{"R_trustStorePasswordPropertyDescription", "The password used to check the integrity of the trust store data."},
				{"R_hostNameInCertificatePropertyDescription", "The host name to be used when validating the SQL Server Secure Sockets Layer (SSL) certificate."},
				{"R_sendTimeAsDatetimePropertyDescription", "Determines whether to use the SQL Server datetime data type to send java.sql.Time values to the database."},
				{"R_TransparentNetworkIPResolutionPropertyDescription", "Determines whether to use the Transparent Network IP Resolution feature."},
				{"R_queryTimeoutPropertyDescription", "The number of seconds to wait before the database reports a query time-out."},
				{"R_socketTimeoutPropertyDescription", "The number of milliseconds to wait before the java.net.SocketTimeoutException is raised."},
				{"R_serverPreparedStatementDiscardThresholdPropertyDescription", "The threshold for when to close discarded prepare statements on the server (calling a batch of sp_unprepares). A value of 1 or less will cause sp_unprepare to be called immediately on PreparedStatment close."},
				{"R_enablePrepareOnFirstPreparedStatementCallPropertyDescription", "This setting specifies whether a prepared statement is prepared (sp_prepexec) on first use (property=true) or on second after first calling sp_executesql (property=false)."},
                {"R_statementPoolingCacheSizePropertyDescription", "This setting specifies the size of the prepared statement cache for a conection. A value less than 1 means no cache."},
				{"R_gsscredentialPropertyDescription", "Impersonated GSS Credential to access SQL Server."}, 
				{"R_noParserSupport", "An error occurred while instantiating the required parser. Error: \"{0}\""},
				{"R_writeOnlyXML", "Cannot read from this SQLXML instance. This instance is for writing data only."},
				{"R_dataHasBeenReadXML", "Cannot read from this SQLXML instance. The data has already been read."},
				{"R_readOnlyXML", "Cannot write to this SQLXML instance. This instance is for reading data only."},
				{"R_dataHasBeenSetXML", "Cannot write to this SQLXML instance. The data has already been set."},
				{"R_noDataXML", "No data has been set in this SQLXML instance."},
				{"R_cantSetNull", "Cannot set a null value."},
				{"R_failedToParseXML", "Failed to parse the XML. Error: \"{0}\""},
				{"R_isFreed", "This {0} object has been freed. It can no longer be accessed."},
				{"R_invalidProperty", "This property is not supported: {0}." },
				{"R_referencingFailedTSP", "The DataSource trustStore password needs to be set." },
				{"R_valueOutOfRange", "One or more values is out of range of values for the {0} SQL Server data type." },
				{"R_integratedAuthenticationFailed", "Integrated authentication failed."},
				{"R_permissionDenied", "Security violation. Permission to target \"{0}\" denied."},
				{"R_getSchemaError", "Error getting default schema name."},
				{"R_setSchemaWarning", "Warning: setSchema is a no-op in this driver version."},
				{"R_updateCountOutofRange", "The update count value is out of range."},
				{"R_limitOffsetNotSupported", "OFFSET clause in limit escape sequence is not supported."},
				{"R_limitEscapeSyntaxError", "Error in limit escape syntax. Failed to parse query."},
				{"R_featureNotSupported", "{0} is not supported."},
				{"R_zoneOffsetError", "Error in retrieving zone offset."},
				{"R_invalidMaxRows", "The supported maximum row count for a result set is Integer.MAX_VALUE or less."},
				{"R_schemaMismatch", "Source and destination schemas do not match."},
				{"R_invalidColumn", "Column {0} is invalid.  Please check your column mappings."},
				{"R_invalidDestinationTable", "Destination table name is missing or invalid."},
				{"R_unableRetrieveColMeta", "Unable to retrieve column metadata."},
				{"R_invalidDestConnection", "Destination connection must be a connection from the Microsoft JDBC Driver for SQL Server."},
				{"R_unableRetrieveSourceData", "Unable to retrieve data from the source."},
				{"R_ParsingError", "Failed to parse data for the {0} type."},
				{"R_BulkTypeNotSupported", "Data type {0} is not supported in bulk copy."},
				{"R_invalidTransactionOption", "UseInternalTransaction option can not be set to TRUE when used with a Connection object."},
				{"R_invalidNegativeArg", "The {0} argument cannot be negative."},
				{"R_BulkColumnMappingsIsEmpty", "Cannot perform bulk copy operation if the only mapping is an identity column and KeepIdentity is set to false."},        
				{"R_CSVDataSchemaMismatch", "Source data does not match source schema."},
				{"R_BulkCSVDataDuplicateColumn", "Duplicate column names are not allowed."},
				{"R_invalidColumnOrdinal", "Column {0} is invalid. Column number should be greater than zero."},
				{"R_unsupportedEncoding", "The encoding {0} is not supported."},
				{"R_UnexpectedDescribeParamFormat", "Internal error. The format of the resultset returned by sp_describe_parameter_encryption is invalid. One of the resultsets is missing."},
				{"R_InvalidEncryptionKeyOridnal", "Internal error. The referenced column encryption key ordinal \"{0}\" is missing in the encryption metadata returned by sp_describe_parameter_encryption. Max ordinal is \"{1}\"."},
				{"R_MissingParamEncryptionMetadata", "Internal error. Metadata for some parameters in statement or procedure \"{0}\" is missing in the resultset returned by sp_describe_parameter_encryption."},
				{"R_UnableRetrieveParameterMetadata", "Unable to retrieve parameter encryption metadata."},                
				{"R_InvalidCipherTextSize", "Specified ciphertext has an invalid size of {0} bytes, which is below the minimum {1} bytes required for decryption."},
				{"R_InvalidAlgorithmVersion","The specified ciphertext''s encryption algorithm version {0} does not match the expected encryption algorithm version {1} ."},
				{"R_InvalidAuthenticationTag", "Specified ciphertext has an invalid authentication tag. "},
				{"R_EncryptionFailed", "Internal error while encryption:  {0} " },
				{"R_DecryptionFailed", "Internal error while decryption:  {0} " },
				{"R_InvalidKeySize", "The column encryption key has been successfully decrypted but it''s length: {0} does not match the length: {1} for algorithm \"{2}\". Verify the encrypted value of the column encryption key in the database." },
				{"R_InvalidEncryptionType", "Encryption type {0} specified for the column in the database is either invalid or corrupted. Valid encryption types for algorithm {1} are: {2}." },
				{"R_UnknownColumnEncryptionAlgorithm", "The Algorithm {0} does not exist. Algorithms registered in the factory are {1}."  },
				{"R_KeyExtractionFailed", "Key extraction failed : {0} ."},
				{"R_UntrustedKeyPath", "The column master key path {0} received from server {1} is not a trusted key path. The column master key path may be corrupt or you should set {0} as a trusted key path using SQLServerConnection.setColumnEncryptionTrustedMasterKeyPaths()."},
				{"R_UnrecognizedKeyStoreProviderName", "Failed to decrypt a column encryption key. Invalid key store provider name: {0}. A key store provider name must denote either a system key store provider or a registered custom key store provider. Valid system key provider names are: {1}. Valid (currently registered) custom key store provider names are: {2}. Please verify key store provider information in column master key definitions in the database, and verify all custom key store providers used in your application are registered properly."},
				{"R_UnsupportedDataTypeAE", "Encryption and decryption of data type {0} is not supported."},
				{"R_NormalizationErrorAE", "Decryption of the data type {0} failed. Normalization error."},
				{"R_UnsupportedNormalizationVersionAE", "Normalization version \"{0}\" received from SQL Server is either invalid or corrupted. Valid normalization versions are: {1}."},
				{"R_NullCipherTextAE", "Internal error. Ciphertext value cannot be null."},
				{"R_NullColumnEncryptionAlgorithmAE", "Internal error. Encryption algorithm cannot be null. Valid algorithms are: {1}."},
				{"R_CustomCipherAlgorithmNotSupportedAE", "Custom cipher algorithm not supported."},
				{"R_PlainTextNullAE", "Internal error. Plaintext value cannot be null."},
				{"R_StreamingDataTypeAE", "Data of length greater than {0} is not supported in encrypted {1} column."},
				{"R_AE_NotSupportedByServer","SQL Server instance in use does not support column encryption."},
				{"R_InvalidAEVersionNumber","Received invalid version number \"{0}\" for Always Encrypted."},	// From Server
				{"R_NullEncryptedColumnEncryptionKey", "Internal error. Encrypted column encryption key cannot be null."},
				{"R_EmptyEncryptedColumnEncryptionKey", "Internal error. Empty encrypted column encryption key specified."},
				{"R_InvalidMasterKeyDetails", "Invalid master key details specified."},
				{"R_CertificateError", "Error occurred while retrieving certificate \"{0}\" from keystore \"{1}\"."},
				{"R_ByteToShortConversion", "Error occurred while decrypting column encryption key."},
				{"R_InvalidCertificateSignature", "The specified encrypted column encryption key signature does not match the signature computed with the column master key (certificate) in \"{0}\". The encrypted column encryption key may be corrupt, or the specified path may be incorrect."},
				{"R_CEKDecryptionFailed", "Exception while decryption of encrypted column encryption key :  {0} "},
				{"R_NullKeyEncryptionAlgorithm", "Key encryption algorithm cannot be null."},
				{"R_NullKeyEncryptionAlgorithmInternal", "Internal error. Key encryption algorithm cannot be null."},
				{"R_InvalidKeyEncryptionAlgorithm", "Invalid key encryption algorithm specified: {0}. Expected value: {1}."},
				{"R_InvalidKeyEncryptionAlgorithmInternal", "Internal error. Invalid key encryption algorithm specified: {0}. Expected value: {1}."},
				{"R_NullColumnEncryptionKey", "Column encryption key cannot be null."},
				{"R_EmptyColumnEncryptionKey", "Empty column encryption key specified."},
				{"R_CertificateNotFoundForAlias", "Certificate with alias {0} not found in the store provided by {1}. Verify the certificate has been imported correctly into the certificate location/store."},
				{"R_UnrecoverableKeyAE", "Cannot recover private key from keystore with certificate details {0}.  Verify that imported AE certificate contains private key and password provided for certificate is correct."},
				{"R_KeyStoreNotFound", "System cannot find the key store file at the specified path. Verify that the path is correct and you have proper permissions to access it."},
				{"R_CustomKeyStoreProviderMapNull", "Column encryption key store provider map cannot be null. Expecting a non-null value."},
				{"R_EmptyCustomKeyStoreProviderName", "Invalid key store provider name specified. Key store provider names cannot be null or empty."},
				{"R_InvalidCustomKeyStoreProviderName", "Invalid key store provider name {0}. {1} prefix is reserved for system key store providers."},
				{"R_CustomKeyStoreProviderValueNull", "Null reference specified for key store provider {0}. Expecting a non-null value."},
				{"R_CustomKeyStoreProviderSetOnce", "Key store providers cannot be set more than once."},
				{"R_unknownColumnEncryptionType", "Invalid column encryption type {0}."},                        
				{"R_unsupportedStmtColEncSetting", "SQLServerStatementColumnEncryptionSetting cannot be null."},                        
				{"R_unsupportedConversionAE", "The conversion from {0} to {1} is unsupported for encrypted column."},
				{"R_InvalidDataForAE", "The given value of type {0} from the data source cannot be converted to type {1} of the specified target column."},
				{"R_authenticationPropertyDescription", "The authentication to use."},
				{"R_accessTokenPropertyDescription", "The access token to use for Azure Active Directory."},
				{"R_FedAuthRequiredPreLoginResponseInvalidValue", "Server sent an unexpected value for FedAuthRequired PreLogin Option. Value was {0}."},
				{"R_FedAuthInfoLengthTooShortForCountOfInfoIds", "The FedAuthInfo token must at least contain 4 bytes indicating the number of info IDs."},
				{"R_FedAuthInfoInvalidOffset", "FedAuthInfoDataOffset points to an invalid location. Current dataOffset is {0}."},
				{"R_FedAuthInfoFailedToReadData", "Failed to read FedAuthInfoData."},
				{"R_FedAuthInfoLengthTooShortForData", "FEDAUTHINFO token stream is not long enough ({0}) to contain the data it claims to."},
				{"R_FedAuthInfoDoesNotContainStsurlAndSpn", "FEDAUTHINFO token stream does not contain both STSURL and SPN."},
				{"R_ADALExecution", "Failed to authenticate the user {0} in Active Directory (Authentication={1})."},
				{"R_UnrequestedFeatureAckReceived", "Unrequested feature acknowledge is received. Feature ID: {0}."},
				{"R_FedAuthFeatureAckContainsExtraData", "Federated authentication feature extension ack for ADAL and Security Token includes extra data."},
				{"R_FedAuthFeatureAckUnknownLibraryType", "Attempting to use unknown federated authentication library. Library ID: {0}."},
				{"R_UnknownFeatureAck", "Unknown feature acknowledge is received."},
				{"R_SetAuthenticationWhenIntegratedSecurityTrue", "Cannot set \"Authentication\" with \"IntegratedSecurity\" set to \"true\"."},
				{"R_SetAccesstokenWhenIntegratedSecurityTrue","Cannot set the AccessToken property if the \"IntegratedSecurity\" connection string keyword has been set to \"true\"."},
				{"R_IntegratedAuthenticationWithUserPassword", "Cannot use \"Authentication=ActiveDirectoryIntegrated\" with \"User\", \"UserName\" or \"Password\" connection string keywords."},
				{"R_AccessTokenWithUserPassword","Cannot set the AccessToken property if \"User\", \"UserName\" or \"Password\" has been specified in the connection string."},
				{"R_AccessTokenCannotBeEmpty","AccesToken cannot be empty."},
				{"R_SetBothAuthenticationAndAccessToken","Cannot set the AccessToken property if \"Authentication\" has been specified in the connection string."},
				{"R_NoUserPasswordForActivePassword","Both \"User\" (or \"UserName\") and \"Password\" connection string keywords must be specified, if \"Authentication=ActiveDirectoryPassword\"."},
				{"R_NoUserPasswordForSqlPassword","Both \"User\" (or \"UserName\") and \"Password\" connection string keywords must be specified, if \"Authentication=SqlPassword\"."},
				{"R_ForceEncryptionTrue_HonorAEFalse", "Cannot set Force Encryption to true for parameter {0} because enryption is not enabled for the statement or procedure {1}."},
				{"R_ForceEncryptionTrue_HonorAETrue_UnencryptedColumn", "Cannot execute statement or procedure {0} because Force Encryption was set as true for parameter {1} and the database expects this parameter to be sent as plaintext. This may be due to a configuration error."},
				{"R_ForceEncryptionTrue_HonorAEFalseRS", "Cannot set Force Encryption to true for parameter {0} because encryption is not enabled for the statement or procedure."},
				{"R_ForceEncryptionTrue_HonorAETrue_UnencryptedColumnRS", "Cannot execute update because Force Encryption was set as true for parameter {0} and the database expects this parameter to be sent as plaintext. This may be due to a configuration error."},
				{"R_NullValue","{0} cannot be null."},
				{"R_AKVPathNull", "Azure Key Vault key path cannot be null." },
				{"R_AKVURLInvalid", "Invalid url specified: {0}." },
				{"R_AKVMasterKeyPathInvalid", "Invalid Azure Key Vault key path specified: {0}."},
				{"R_EmptyCEK","Empty column encryption key specified."},
				{"R_EncryptedCEKNull","Encrypted column encryption key cannot be null."},
				{"R_EmptyEncryptedCEK","Encrypted Column Encryption Key length should not be zero."},
				{"R_NonRSAKey","Cannot use a non-RSA key: {0}."},
				{"R_GetAKVKeySize","Unable to get the Azure Key Vault public key size in bytes."},
				{"R_InvalidEcryptionAlgorithmVersion","Specified encrypted column encryption key contains an invalid encryption algorithm version {0}. Expected version is {1}."},
				{"R_AKVKeyLengthError","The specified encrypted column encryption key''s ciphertext length: {0} does not match the ciphertext length: {1} when using column master key (Azure Key Vault key) in {2}. The encrypted column encryption key may be corrupt, or the specified Azure Key Vault key path may be incorrect."},
				{"R_AKVSignatureLengthError","The specified encrypted column encryption key''s signature length: {0} does not match the signature length: {1} when using column master key (Azure Key Vault key) in {2}. The encrypted column encryption key may be corrupt, or the specified Azure Key Vault key path may be incorrect."},
				{"R_HashNull","Hash should not be null while decrypting encrypted column encryption key."},
				{"R_NoSHA256Algorithm","SHA-256 Algorithm is not supported."},
				{"R_VerifySignature","Unable to verify signature of the column encryption key."},
				{"R_CEKSignatureNotMatchCMK","The specified encrypted column encryption key signature does not match the signature computed with the column master key (Asymmetric key in Azure Key Vault) in {0}. The encrypted column encryption key may be corrupt, or the specified path may be incorrect."},
				{"R_DecryptCEKError","Unable to decrypt CEK using specified Azure Key Vault key."},
				{"R_EncryptCEKError","Unable to encrypt CEK using specified Azure Key Vault key."},
				{"R_CipherTextLengthNotMatchRSASize","CipherText length does not match the RSA key size."},
				{"R_GenerateSignature","Unable to generate signature using a specified Azure Key Vault Key URL."},
				{"R_SignedHashLengthError","Signed hash length does not match the RSA key size."},
				{"R_InvalidSignatureComputed","Invalid signature of the encrypted column encryption key computed."},
				{"R_UnableLoadADALSqlDll","Unable to load adalsql.dll. Error code: 0x{0}. For details, see: http://go.microsoft.com/fwlink/?LinkID=513072"},
				{"R_ADALAuthenticationMiddleErrorMessage","Error code 0x{0}; state {1}."},
				{"R_unsupportedDataTypeTVP", "Data type {0} not supported in Table-Valued Parameter."},
				{"R_moreDataInRowThanColumnInTVP", "Input array is longer than the number of columns in this table."},
				{"R_invalidTVPName"," The Table-Valued Parameter must have a valid type name."},
				{"R_invalidThreePartName","Invalid 3 part name format for TypeName."},
				{"R_unsupportedConversionTVP", "The conversion from {0} to {1} is unsupported for Table-Valued Parameter."},
				{"R_TVPMixedSource", "Cannot add column metadata. This Table-Valued Parameter has a ResultSet from which metadata will be derived."},
				{"R_TVPEmptyMetadata", "There are not enough fields in the Structured type. Structured types must have at least one field."},
				{"R_TVPInvalidValue", "The value provided for Table-Valued Parameter {0} is not valid. Only SQLServerDataTable, ResultSet and ISQLServerDataRecord objects are supported."},
				{"R_TVPInvalidColumnValue", "Input data is not in correct format."},
				{"R_AADIntegratedOnNonWindows","ActiveDirectoryIntegrated is only supported on Windows operating systems."},
				{"R_TVPSortOrdinalGreaterThanFieldCount", "The sort ordinal {0} on field {1} exceeds the total number of fields."},
				{"R_TVPMissingSortOrderOrOrdinal", "The sort order and ordinal must either both be specified, or neither should be specified (SortOrder.Unspecified and -1). The values given were: order = {0}, ordinal = {1}."},
				{"R_TVPDuplicateSortOrdinal", "The sort ordinal {0} was specified twice."},
				{"R_TVPMissingSortOrdinal", "The sort ordinal {0} was not specified."},
				{"R_TVPDuplicateColumnName","A column name {0} already belongs to this SQLServerDataTable."},
				{"R_InvalidConnectionSetting", "The {0} value \"{1}\" is not valid."}, // This is used for connection settings. {0}-> property name as is, {1}-> value 
				{"R_InvalidWindowsCertificateStoreEncryption", "Cannot encrypt a column encryption key with the Windows Certificate Store."},
				{"R_AEKeypathEmpty", "Internal error. Certificate path cannot be null. Use the following format: \"certificate location/certificate store/certificate thumbprint\", where \"certificate location\" is either LocalMachine or CurrentUser."},
				{"R_AEWinApiErr", "Windows Api native error."},
				{"R_AECertpathBad", "Internal error. Invalid certificate path: {0}. Use the following format: \"certificate location/certificate store/certificate thumbprint\", where \"certificate location\" is either LocalMachine or CurrentUser."},
				{"R_AECertLocBad", "Internal error. Invalid certificate location {0} in certificate path {1}. Use the following format: \"certificate location/certificate store/certificate thumbprint\", where \"certificate location\" is either LocalMachine or CurrentUser."},
				{"R_AECertStoreBad", "Internal error. Invalid certificate store {0} specified in certificate path {1}. Expected value: My."},
				{"R_AECertHashEmpty", "Internal error. Empty certificate thumbprint specified in certificate path {0}."},
				{"R_AECertNotFound", "Certificate with thumbprint {2} not found in certificate store {1} in certificate location {0}. Verify the certificate path in the column master key definition in the database is correct, and the certificate has been imported correctly into the certificate location/store."},
				{"R_AEMaloc", "Memory allocation failure."},
				{"R_AEKeypathLong", "Internal error. Specified certificate path has {0} bytes, which exceeds maximum length of {1} bytes."},
				{"R_AEECEKLenBad", "The specified encrypted column encryption key''s ciphertext length: {0} does not match the ciphertext length: {1} when using column master key (certificate) in \"{2}\". The encrypted column encryption key may be corrupt, or the specified certificate path may be incorrect."},
				{"R_AEECEKSigLenBad", "The specified encrypted column encryption key''s signature length {0} does not match the length {1} when using the column master key (certificate) in \"{2}\". The encrypted column encryption key may be corrupt, or the specified certificate path may be incorrect."},
				{"R_AEKeyPathEmptyOrReserved","The certificate path \"{0}\" is invalid; it is empty or contains reserved directory names."},
				{"R_AEKeyPathCurUser","CurrentUser was specified in key path but an error occurred obtaining the current user''s initial working directory."},
				{"R_AEKeyFileOpenError","Error opening certificate file {0}."},
				{"R_AEKeyFileReadError","Error reading certificate file {0}."},
				{"R_keyStoreAuthenticationPropertyDescription", "The name that identifies a key store."},
				{"R_keyStoreSecretPropertyDescription", "The authentication secret or information needed to locate the secret."},
				{"R_keyStoreLocationPropertyDescription", "The key store location."},
				{"R_fipsProviderPropertyDescription", "FIPS Provider."},
				{"R_keyStoreAuthenticationNotSet", "\"keyStoreAuthentication\" connection string keyword must be specified,  if \"{0}\" is specified."},
				{"R_keyStoreSecretOrLocationNotSet", "Both \"keyStoreSecret\" and \"keyStoreLocation\" must be set, if \"keyStoreAuthentication=JavaKeyStorePassword\" has been specified in the connection string."},
				{"R_certificateStoreInvalidKeyword", "Cannot set \"keyStoreSecret\", if \"keyStoreAuthentication=CertificateStore\" has been specified in the connection string."},
				{"R_certificateStoreLocationNotSet", "\"keyStoreLocation\" must be specified, if \"keyStoreAuthentication=CertificateStore\" has been specified in the connection string."},
				{"R_certificateStorePlatformInvalid", "Cannot set \"keyStoreAuthentication=CertificateStore\" on a Windows operating system."},
				{"R_invalidKeyStoreFile", "Cannot parse \"{0}\". Either the file format is not valid or the password is not correct."}, // for JKS/PKCS
				{"R_invalidCEKCacheTtl", "Invalid column encryption key cache time-to-live specified. The columnEncryptionKeyCacheTtl value cannot be negative and timeUnit can only be DAYS, HOURS, MINUTES or SECONDS."}, 
				{"R_sendTimeAsDateTimeForAE", "Use sendTimeAsDateTime=false with Always Encrypted."}, 
				{"R_TVPnotWorkWithSetObjectResultSet" , "setObject() with ResultSet is not supported for Table-Valued Parameter. Please use setStructured()."},
				{"R_invalidQueryTimeout", "The queryTimeout {0} is not valid."},
				{"R_invalidSocketTimeout", "The socketTimeout {0} is not valid."},
				{"R_fipsPropertyDescription", "Determines if enable FIPS compilant SSL connection between the client and the server."},
				{"R_invalidFipsConfig", "Could not enable FIPS."},
				{"R_invalidFipsEncryptConfig", "Could not enable FIPS due to either encrypt is not true or using trusted certificate settings."},
				{"R_invalidFipsProviderConfig", "Could not enable FIPS due to invalid FIPSProvider or TrustStoreType."},
				{"R_serverPreparedStatementDiscardThreshold", "The serverPreparedStatementDiscardThreshold {0} is not valid."},
				{"R_statementPoolingCacheSize", "The statementPoolingCacheSize {0} is not valid."},
				{"R_kerberosLoginFailedForUsername", "Cannot login with Kerberos principal {0}, check your credentials. {1}"},
				{"R_kerberosLoginFailed", "Kerberos Login failed: {0} due to {1} ({2})"},
				{"R_StoredProcedureNotFound", "Could not find stored procedure ''{0}''."},
				{"R_jaasConfigurationNamePropertyDescription", "Login configuration file for Kerberos authentication."},
				{"R_AKVKeyNotFound", "Key not found: {0}"},
				{"R_SQLVariantSupport", "SQL_VARIANT datatype is not supported in pre-SQL 2008 version."},
                {"R_invalidProbbytes", "SQL_VARIANT: invalid probBytes for {0} type."},
                {"R_invalidStringValue", "SQL_VARIANT does not support string values more than 8000 length."},
                {"R_invalidValueForTVPWithSQLVariant", "Inserting null value with column type sql_variant in TVP is not supported."},
    };
}
